package com.yunhui.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yunhui.entity.Order;
import com.yunhui.entity.PeopleInfo;
import com.yunhui.entity.RouteJb;
import com.yunhui.entity.SubscribePeople;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 *  订单的业务处理接口
 * </p>
 *
 * @author WGH
 * @since 2019-12-09
 */
public interface OrderService extends IService<Order> {
    /**
     * 查询所有订单信息
     * @return
     */
    public List<Order> findAllOrder();


    /**
     * 根据用户Id查询
     * @return
     */
    public List<Order> findOrderById(String O_date, Integer sid, Integer uid, int currentPageNo, int pageSize);

    /**
     * 商家---根据商家id 查询订单信息
     * @param O_date
     * @param sjId  商家登录时的id
     * @param currentPageNo
     * @param pageSize
     * @return
     */
    public List<Order> findOrderBysjId(String O_date,String title,Integer sjId, int currentPageNo,int pageSize);

    /**
     * 商家---查詢今日訂單
     * @param
     * @return
     */
    public List<Order> findTodayOrder(Integer id);


    /**
     * 商家---加载行程信息
     * @param sjId
     * @return
     */
    public List<RouteJb> findTitle(Integer sjId);

    /**
     *  商家---加载行程编号
     *
     */
    public List<Order> findOrderSid();

    /**
     *
     *   订单页面：加载信息
     */
    public List<Order> findOrder(Integer id);


    /**
     *
     * 订单页面：提交添加联系人
     * @return
     */
    public int addSubscribePeople(SubscribePeople subscribePeople);

    /**
     * 订单页面：添加游客信息
     * @param peopleInfo
     * @return
     */
    public int addPeopleInfo(PeopleInfo peopleInfo);


    /**
     * 订单页面：根据行程编号查询显示信息
     * @param id
     * @return
     */
    public List<RouteJb> findRouteInfo(@Param("id") Integer id);


    /**
     * 后台：详细信息显示
     * 根据行程发布Id获得基本Id
     * @param
     * @return
     */
    public Integer findRoute_issued(Integer sid);

    /**
     * 查询联系人信息
     * @param oid
     * @return
     */
    public List<SubscribePeople> findSubscribePeople(Integer oid);

    /**
     * 查询游客信息
     * @param oid
     * @return
     */
    public List<PeopleInfo> findPeopleInfo(Integer oid);


    /**
     *
     * 我的订单页面
     * 查询信息
     *
     */
    List<Order> ListByPage(Integer index, Integer size, String status, Integer uid);

    int CountByPage(String status, Integer uid);



    /**
     * 订单详细信息页面
     *
     */
    //修改联系人信息   根据订单编号修改
    public int updateSubscribePeople(SubscribePeople subscribePeople);

    //修改游客信息	根据游客姓名修改
    public int updatePeopleInfo(PeopleInfo peopleInfo);


    //#根据订单编号查询信息
    public List<Order> findInfo(Integer id);


    /**
     * 添加订单
     * @param order
     * @param subscribePeople
     * @param list
     * @return
     */
    public  Boolean addOrder(Order order,SubscribePeople subscribePeople,List<PeopleInfo> list);




}
